import { createPinia } from "./pinia";
import { createApp } from "vue";
import App from "./App.vue";
const app = createApp(App);
// debugger
const pinia = createPinia();

// 持久化插件
const persistPlugin = () => {
  return ({ store, id }) => {
    // 页面刷新的时候会执行，将localStorage中的数据更新到store中
    // 从本地获取数据, 更新到store中
    // const localData = JSON.parse(localStorage.getItem(id) || '{}');
    // if (localData) {
    //   store.$patch(JSON.parse(localData)); // 这是一个可以批量更新store数据的函数，没有实现
    // }
    // 监听store变化，变化时存入本地

    store.$subscribe((state) => {
      console.log("存入本地", store, id);
      localStorage.setItem(id, JSON.stringify(state));
    });
  };
};

pinia.use(persistPlugin()); // pinia使用持久化插件
app.use(pinia); // App使用pinia插件
app.mount("#app");
